const express = require('express');
const app = express();
const router = express.Router();
const bodyParser = require('body-parser');
const session = require('express-session');
const compression = require('compression');

require('./mysql/index')
app.use(session({ secret: 'secret key' }))
app.use(bodyParser.urlencoded({ extended: false }));
// app.use(express.static('public',{maxage: '60s'}))
app.use(express.static('public'))
app.engine('html', require('express-art-template'))
app.set('view engine', 'html')

const home = require('./routers/home')
const admin = require('./routers/admin')
router.get('/',(req,res)=>{
  return res.redirect('/home/user')
})
// app.use(compression());
app.use(router)

// 当用户访问后台管理系统时会被匹配到该中间件，如果访问地址为登录页面，那么就不阻拦，如果访问的不是登录页面并且没有唯一令牌或者唯一令牌是用户造假的那么服务器将客户端强行跳回登录页面重新进行登录
app.use('/admin', (req, res, next) => {
  if (req.url != '/login' && !req.session.username) {
    // 强行跳转到登录页面
    res.redirect('/admin/login')
  } else {
    // 用户的令牌为真，中间件不阻拦，可以向下执行
    next()
  }
})

app.use('/home', home)
app.use('/admin', admin)

app.listen(80, () => {
  console.log('服务器启动成功')
});